#include "general_gpio.h"

#define LED1_PIN 	GPIO_Pin_9
#define LED2_PIN 	GPIO_Pin_8
#define LED3_PIN 	GPIO_Pin_2
#define LED4_PIN 	GPIO_Pin_3
#define BLE_LED_PIN GPIO_Pin_1
#define BEEP_PIN	GPIO_Pin_7
#define KEY1_PIN	GPIO_Pin_5
#define KEY2_PIN	GPIO_Pin_4



/**
 * @Description GPIO初始化
 */
void General_Gpioinit()
{
	GPIO_InitTypeDef GPIO_InitStructure;																					
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB, ENABLE);
	//LED
	GPIO_InitStructure.GPIO_Pin = LED1_PIN | LED2_PIN;							
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;													
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;												
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;										
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;													
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Pin = LED3_PIN | LED4_PIN | BLE_LED_PIN;							
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;													
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;												
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;										
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;													
	GPIO_Init(GPIOC, &GPIO_InitStructure);	
	
	//BEEP
	GPIO_InitStructure.GPIO_Pin = BEEP_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
	GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO
	
	//KEY
	GPIO_InitStructure.GPIO_Pin = KEY1_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//普通输出模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
	GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO
	
	GPIO_InitStructure.GPIO_Pin = KEY2_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//普通输出模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
	GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO
	
	//初始化led为灭
	GPIO_SetBits(GPIOB, LED1_PIN | LED2_PIN);													
	GPIO_SetBits(GPIOC, LED3_PIN | LED4_PIN);
	//ble led为亮
	GPIO_ResetBits(GPIOC,BLE_LED_PIN);	
}
